#ifndef PROJECTIVE_RECON_H_
#define PROJECTIVE_RECON_H_
#include <stdio.h>
#include <Mesh/_Func_.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct Greedy_Projection_Vert_Prop{
    double normal[3];
    double p[3];
    int is_init; 
    int active;
    void* prop;
}Greedy_Projection_Vert_Prop;

static inline void greedy_projection_vert_prop_init(Greedy_Projection_Vert_Prop* gpvp)
{
    memset(gpvp->normal,0,sizeof(double)*3);
    memset(gpvp->p,0,sizeof(double)*3);

    gpvp->is_init=0;
    gpvp->active=0;
    gpvp->prop=NULL;
}


Mesh* projective_reconstruct(Mesh* m,Node* node_vs,double* n,int is_insert_in);

Mesh* projective_reconstruct_fix(Mesh* m,Node* node_vs,double* n);
void projective_reconstruct_fix_neighborhood_hole(Mesh* m, Node* node_v, double* normal,int fix);
#ifdef __cplusplus
}
#endif


#endif 